package com.boss.thirteen.service;

import com.boss.common.entity.WfActionDTO;
import com.boss.framework.exception.AppRuntimeException;
import com.boss.sys.ca.user.dto.UserDTO;
import com.boss.thirteen.vo.ThirteenAgencyVerifyVO;

import java.util.List;
import java.util.Map;

public interface ISalaryThirteenWorkFlowService {


    /**
     * 执行工资流程接口
     * @param userDTO
     * @param wfActionDTO
     * @throws AppRuntimeException
     */
    void doSalaryFlowList(UserDTO userDTO, WfActionDTO wfActionDTO,ThirteenAgencyVerifyVO agencyVerifyVo,String tokenid) throws AppRuntimeException;
    /**
     * 执行工资流程接口
     * @param userDTO
     * @param wfActionDTO
     * @throws AppRuntimeException
     */
    void doSalaryFlow(UserDTO userDTO, WfActionDTO wfActionDTO,String tokenid) throws AppRuntimeException;

    /**
     * 查询指定人指定节点下的指定流程、状态的数据集合
     * @param userDTO
     * @param wfActionDTO
     * @return
     */
    List<String> queryWorkflowInfo(UserDTO userDTO, WfActionDTO wfActionDTO,String tokenid) throws AppRuntimeException;
    /**
     * 查询指定人指定节点下的指定流程、状态的数据集合
     * @param userDTO
     * @param wfActionDTO
     * @return
     */
    List<Map> queryWorkflowInfoStatus(UserDTO userDTO, WfActionDTO wfActionDTO,List<String> statuses,List<String> bizkeyList,String tokenid) throws AppRuntimeException;

    /**
     * 获取单位审核说明
     * @param agencyId
     * @return
     */
    List<Map> getAuditInstruction(UserDTO userDTO,WfActionDTO wfActionDTO,String agencyId,String tokenid);

    /**
     * 作废十三月工资
     * @param userDTO
     * @param wfActionDTO
     * @throws AppRuntimeException
     */
    void terminations(UserDTO userDTO, WfActionDTO wfActionDTO) throws AppRuntimeException;
}
